import java.io.*;
import java.util.Random;
import java.util.Scanner;

class Read {
    StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    public long nextLong() throws IOException {
        st.nextToken();
        return (long) st.nval;
    }

    public double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    public String nextLine() throws IOException {
        return br.readLine();
    }
}
//
//class Main {
//    static int n;
//    static char[][] map;
//    static int[][] st;
//    static String str = "yizhong";
//    static int[] xx = {1,1,-1,-1,0,0,1,-1};
//    static int[] yy = {1,-1,1,-1,1,-1,0,0};
//    public static void main(String[] args) throws IOException {
//        Read read = new Read();
//        Scanner scanner = new Scanner(System.in);
//        n = scanner.nextInt();
//        map = new char[n+1][n+1];
//        st = new int[n][n];
//        for(int i = 0; i<n; i++) {
//            String tmp = scanner.next();
//            for(int j = 0; j<tmp.length(); j++) {
//                map[i][j] = tmp.charAt(j);
//            }
//        }
//        for(int i =0 ; i<n; i++) {
//            for(int j = 0; j<n; j++) {
//                if(map[i][j] == 'y') {
//                    dfs(i,j);
//                }
//            }
//        }
//
//        PrintWriter out = new PrintWriter(System.out);
//        for(int i = 0; i<n; i++) {
//            for(int j = 0; j<n; j++) {
//                if(st[i][j] == 1) {
//                    out.print(map[i][j]);
//                }else {
//                    out.print("*");
//                }
//                out.flush();;
//            }
//            out.println();
//            out.flush();
//        }
//    }
//
//    public static void dfs(int x, int y) {
//        //枚举8个方向
//        for(int i = 0; i<8; i++) {
//            int flag = 0;
//           for(int j = 0; j<7; j++) {
//               int dx = x + j*xx[i];
//               int dy = y + j*yy[i];
//               if(dx <0 || dx >= n || dy < 0 || dy>=n || map[dx][dy] != str.charAt(j)) {
//                   flag = 1;
//                   break;
//               }
//           }
//           if(flag == 0) {
//               for(int j = 0; j<7; j++) {
//                   int dx = x + j*xx[i];
//                   int dy = y + j*yy[i];
//                   st[dx][dy] = 1;
//               }
//           }
//        }
//    }
//}

//
//import java.util.Scanner;
//
//public class Main {
//    static int n;
//    static String[] strs;
//    static int[] vis;
//    static int ans;
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        n = scanner.nextInt();
//        strs = new String[n];
//        vis = new int[n];
//        for(int i = 0; i<n; i++){
//            strs[i] = scanner.next();
//        }
//        char ch = scanner.next().charAt(0);
//        for(int i =0; i<n; i++) {
//            if(ch == strs[i].charAt(0)) {
//                vis[i]++;
//                dfs(strs[i], strs[i].length());
//                vis[i]--;
//            }
//        }
//
//        System.out.println(ans);
//    }
//
//    public static void dfs(String str, int s) {
//        ans = Math.max(ans,s);
//        for(int i = 0;i<n; i++) {
//            int p = 1;
//            int la = str.length(), lb = strs[i].length();
//            int len = Math.min(la,lb);
//            while(p < len) {
//                if(vis[i] < 2 && str.substring(la-p).equals(strs[i].substring(0,p))) {
//                    vis[i]++;
//                    dfs(strs[i], s+strs[i].length() - p);
//                    vis[i]--;
//                    break;
//                }
//                p++;
//            }
//        }
//    }
//}


public class Main {
    static long mod = 1000000000l;
    public static void main(String[] args) {
        long sum = 0;
        long tmp =1;
        for(long i = 1; i<=500000000; i++) {
            tmp = (tmp%mod) * (i%mod);
            sum = (sum%mod) + (tmp%mod);
            System.out.println(sum);
        }
        System.out.println(sum);
    }
}
//32734736384
//  420940313








